import 'package:flutter/material.dart';

import 'package:aweb5/base/BaseWidget.dart';


import 'package:flutter/cupertino.dart';
import 'package:dio/dio.dart';
import 'dart:async';
import 'package:aweb5/pages/WrongPage.dart';
import 'package:aweb5/config/Config.dart';
import 'AplusHomePage.dart';
import 'package:aweb5/widgetlib/LoadingDialog.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:aweb5/util/DialogUtil.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:flutter_html/flutter_html.dart';
import 'package:url_launcher/url_launcher.dart';
import 'Homepageweb.dart';
class Dispatch extends BaseWidget {
  @override
  State<Dispatch> createState() => DispatchState();
}

class DispatchState extends BaseWidgetState<Dispatch> {
  Dio dio;
  String data = "1. 在浏览使用时，我们会使用您的设备标识信息用于推荐。\n2. 我们可能会使用您的位置信息，为您推荐附近的服务，但不会收集和存储任何精确位置信息。\n3. 您可以查看完整版《用户协议》和《隐私政策》以便了解我们使用您手机信息的情况，以及对信息的保护措施。\n\n如果您同意请点击下面的按钮以接收我们的服务。";
  BuildContext context;
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((v){
      get(Config.baseUrl,context);
    });

  }

  @override
  Widget build(BuildContext context) {
    this.context = context;
    init(context);
    return Scaffold(
      body: Center(child: Text(""),),
    );
  }

  Future<Map> get(String url,BuildContext context, {data, method}) async {
    data = data ?? {};
    method =   'GET';

    /// restful 请求处理
    /// /gysw/search/hist/:user_id        user_id=27
    /// 最终生成 url 为     /gysw/search/hist/27
//    data.forEach((key, value) {
//      if (url.indexOf(key) != -1) {
//        url = url.replaceAll(':$key', value.toString());
//      }
//    });

    /// 打印请求相关信息：请求地址、请求方式、请求参数
    print('请求地址：【' + method + '  ' + url + '】');
    print('请求参数：' + data.toString());

    Dio dio = createInstance();
    var result;
    int count =0;
    try {
      Response response = await dio.request(url,
          options: new Options(method: method));
      // showDialog(context: context,builder: (context){return LoadingDialog(text: "");});
      //  result = response.data;
      count++;
      if(count==1){
        Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (con){
//          return HomePage();
          return Homepageweb();
        }));
      }

      /// 打印响应相关信息
      //  print('响应数据：' + response.toString());
    }  catch (e) {
      print(">>>>err");
      print(">>>>errcount${count}");
      count++;
      if(count==1){
        print(">>>>err1");
        Navigator.of(context).pushReplacement(MaterialPageRoute(builder: (con){
          return WrongPage();
        }));
      }

      /// 打印请求失败相关信息

//      dio.reject(e);
      // rethrow;
    } finally{

    }
//    setState(() {
//
//    });
    return result;
  }



  Dio createInstance() {
    if (dio == null) {
      /// 全局属性：请求前缀、连接超时时间、响应超时时间
      BaseOptions options = new BaseOptions(
//        baseUrl: API_PREFIX,
        connectTimeout: 3000,
        receiveTimeout: 5000,
      );

      dio = new Dio(options);
    }

    return dio;
  }
  Future isFirst() async{
    SharedPreferences prefs = await SharedPreferences.getInstance();
    return prefs.getBool("show");
  }
  setFirst()async{
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.setBool("show", false);
  }

}